package jschool.modelos;

import javax.swing.table.AbstractTableModel;

import jschool.entidades.Nomina;
import jschool.manejadores.ManejadorDeNomina;

public class ModeloNomina extends AbstractTableModel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String[] encabezado = null;
	private static ModeloNomina instancia = null;
	private ManejadorDeNomina manejadorDeNomina = null;
	private Nomina nomina = null;

	public ModeloNomina() {
		encabezado = new String[] { "Id_Empleado", "Impueto Sobre la Renta",
				"Seguro Social", "Seguro Pension", "Sueldo Neto" };
		manejadorDeNomina = ManejadorDeNomina.getInstancia();
	}

	public static ModeloNomina getInstancia() {
		if (instancia == null) {
			instancia = new ModeloNomina();
		}
		return instancia;
	}

	public String getColumnName(int posicion) {
		return encabezado[posicion];
	}

	@Override
	public int getColumnCount() {

		return encabezado.length;
	}

	@Override
	public int getRowCount() {

		return manejadorDeNomina.getNominas().size();
	}

	@Override
	public Object getValueAt(int fila, int col) {
		nomina = manejadorDeNomina.getNominas().get(fila);
		String retorno = "";
		switch (col) {
		case 0:
			retorno = String.valueOf(nomina.getIdEmpleado());

			break;
		case 1:
			retorno = String.valueOf(nomina.getImpuestoSobreLaRenta());
			break;
		case 2:
			retorno = String.valueOf(nomina.getSeguroSocial());
			break;

		case 3:
			retorno = String.valueOf(nomina.getSeguroPension());
			break;

		case 4:
			retorno = String.valueOf(nomina.getSueldoNeto());
			break;
		}

		return retorno;
	}

	public void setValueAt(Object valor, int fila, int col) {
		nomina = manejadorDeNomina.getNominas().get(fila);
		switch (col) {

		case 1:
			nomina.setImpuestoSobreLaRenta((Integer) valor);
			break;

		case 2:
			nomina.setSeguroSocial((Integer) valor);
			break;

		case 3:
			nomina.setSeguroPension((Integer) valor);
			break;

		case 4:
			nomina.setSueldoNeto((Integer) valor);
			break;

		}

	}
}
